package com.taco.springcloud.generate.dao;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.taco.springcloud.generate.model.dto.ColumnDTO;
import com.taco.springcloud.generate.model.dto.TableDTO;
import com.taco.springcloud.generate.model.po.Tables;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 代码生成Mapper
 *
 * @author Yu
 * @date 2019/10/02 21:05
 **/

public interface GenerateMapper {

    /**
     * 分页查询所有表
     *
     * @param tableSchema   名称空间
     * @param tableName     表名（支持模糊）
     * @return              表元数据
     */
    IPage<TableDTO> selectTables(IPage<Tables> page,
                                @Param("tableSchema") String tableSchema,
                                @Param("tableName") String tableName);

    /**
     * 通过名称空间和表名查询表
     *
     * @param tableSchema   名称空间
     * @param tableName     表名
     * @return              表元数据
     */
    TableDTO selectTableBySchemaAndTableName(@Param("tableSchema") String tableSchema,
                                             @Param("tableName") String tableName);

    /**
     * 通过名称空间和表名查询列
     *
     * @param tableSchema   名称空间
     * @param tableName     表名
     * @return              列元数据
     */
    List<ColumnDTO> selectColumnsBySchemaAndTableName(@Param("tableSchema") String tableSchema,
                                                      @Param("tableName") String tableName);


}
